1. Field of the Invention
This invention relates generally to computer systems, and more particularly to computer systems having multiple processors, each processor being capable of executing on its own independent operating system and wherein the computer system has an improved initial program loader (bootstrap loader) method and hardware.
2. Description of the Prior Art
Computer systems are generally comprised of hardware and software. Computer hardware per se cannot perform any of the tasks of a computer without the necessary software. Various types of software are needed to have the computer perform its jobs and tasks in a coordinated manner. These programs are divided generally into two major categories--operating system programs and application programs. The operating system is generally comprised of such programs as the supervisor program (also called an executive or a monitor program), job-control programs, assemblers, compilers, editors, etc. The application programs are the user programs which perform user tasks, such as payroll programs, inventory programs, etc. The application programs generally are supervised by the operating system; i.e., they may be compiled, scheduled, edited, etc. The operating system also translates or compiles application programs so that they become intelligible to the computer.
However before a single program can be executed, it must first be entered into the computer storage. Since a machine without any programs is a "dumb" machine, how can the necessary programs be entered into computer storage? Generally a microsequence initiated by a load button on the machine console controls entry of a very small amount of data into storage starting at address 0. Usually the initial program-load control enters only a small amount of data, such as for example, a single card or seven words. Accordingly this starts a program with a first instruction as read in by the initial program-load microsequence. The information entered by the microsequence contains instructions to read more information into storage which is part of a more general loading routine. In this way, the machine "bootstraps" itself to enter first a loader routine and then uses this to load other data and programs from an external device to main memory of the computer system. Although the initial block of information entered may be quite small, it typically contains instructions to load more instructions until the loader routine is entered which can control general program-data entry.
In a multiprogramming multiprocessing system when a "bootstrap" operation has been signaled, the input/output (I/O) processor takes control. Generally it has to stop any I/O operations that were in progress, reset all the channel registers that are contained within its I/O memory, and in addition it must get the main processor to reset all of its registers, its memory management unit, and clear its main memory area. (This initializing procedure occurs generally when a new operating system is to be loaded.) Then the I/O processor utilizing a "bootstrap load" routine will "bootstrap" load the operating system and application programs. The computer system will then be ready to execute programs and perform the jobs and tasks assigned to it.
In a multiprogramming multiprocessing system a computer system may be operating under control of one operating system at any given time. If it is desired to change operating systems, the above initializing procedure is generally resorted to. As can be seen, this is time-consuming. Moreover, when an operating system is changed, there is no way to pass information from the previous operating system to the current operating system. Therefore it becomes inefficient to shut-down one operating system and "bootstrap load" another operating system. What was needed therefore to improve the efficiency of switching from one operating system to another operating system was a method and means for passing information from one operating system to the other, thus "bridging" the bootstrap load procedure.